/*
 * correspondencia.java
 * Created on 14/04/2014, 11:41:32 AM
 * Copyright RVGRFD85
 */
package visit;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectedData;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectionItems;
import com.icesoft.faces.component.jsfcl.data.PopupBean;
import com.icesoft.faces.context.effects.JavascriptContext;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import listas.listaOficios;
import listas.listaTurnados;
import pojos.CatAsuntos;
import pojos.CatInstancias;
import pojos.Oficios;
import pojos.Remitentes;
import pojos.Turnados;
import listas.parametros;
/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 */
public class correspondencia extends AbstractPageBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
    private int __placeholder;

    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    }
    private PopupBean panelPopup1Bean = new PopupBean();

    public PopupBean getPanelPopup1Bean() {
        return panelPopup1Bean;
    }

    public void setPanelPopup1Bean(PopupBean pb) {
        this.panelPopup1Bean = pb;
    }

    private DefaultSelectedData selectOneMenu1Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectOneMenu1Bean() {
        return selectOneMenu1Bean;
    }

    public void setSelectOneMenu1Bean(DefaultSelectedData dsd) {
        this.selectOneMenu1Bean = dsd;
    }
    private DefaultSelectionItems selectOneMenu1DefaultItems = new DefaultSelectionItems();

    public DefaultSelectionItems getSelectOneMenu1DefaultItems() {
        return selectOneMenu1DefaultItems;
    }

    public void setSelectOneMenu1DefaultItems(DefaultSelectionItems dsi) {
        this.selectOneMenu1DefaultItems = dsi;
    }
    private DefaultSelectedData selectOneMenu2Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectOneMenu2Bean() {
        return selectOneMenu2Bean;
    }

    public void setSelectOneMenu2Bean(DefaultSelectedData dsd) {
        this.selectOneMenu2Bean = dsd;
    }
    private DefaultSelectionItems selectOneMenu2DefaultItems = new DefaultSelectionItems();

    public DefaultSelectionItems getSelectOneMenu2DefaultItems() {
        return selectOneMenu2DefaultItems;
    }

    public void setSelectOneMenu2DefaultItems(DefaultSelectionItems dsi) {
        this.selectOneMenu2DefaultItems = dsi;
    }
    private PopupBean panelPopup2Bean = new PopupBean();

    public PopupBean getPanelPopup2Bean() {
        return panelPopup2Bean;
    }

    public void setPanelPopup2Bean(PopupBean pb) {
        this.panelPopup2Bean = pb;
    }
    private PopupBean panelPopup2Bean1 = new PopupBean();

    public PopupBean getPanelPopup2Bean1() {
        return panelPopup2Bean1;
    }

    public void setPanelPopup2Bean1(PopupBean pb) {
        this.panelPopup2Bean1 = pb;
    }
    private PopupBean panelPopup2Bean2 = new PopupBean();

    public PopupBean getPanelPopup2Bean2() {
        return panelPopup2Bean2;
    }

    public void setPanelPopup2Bean2(PopupBean pb) {
        this.panelPopup2Bean2 = pb;
    }
    private DefaultSelectedData selectOneRadio1Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectOneRadio1Bean() {
        return selectOneRadio1Bean;
    }

    public void setSelectOneRadio1Bean(DefaultSelectedData dsd) {
        this.selectOneRadio1Bean = dsd;
    }
    private DefaultSelectionItems selectOneRadio1DefaultItems = new DefaultSelectionItems();

    public DefaultSelectionItems getSelectOneRadio1DefaultItems() {
        return selectOneRadio1DefaultItems;
    }

    public void setSelectOneRadio1DefaultItems(DefaultSelectionItems dsi) {
        this.selectOneRadio1DefaultItems = dsi;
    }
    private DefaultSelectedData selectOneRadio2Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectOneRadio2Bean() {
        return selectOneRadio2Bean;
    }

    public void setSelectOneRadio2Bean(DefaultSelectedData dsd) {
        this.selectOneRadio2Bean = dsd;
    }
    private DefaultSelectionItems selectOneRadio2DefaultItems = new DefaultSelectionItems();

    public DefaultSelectionItems getSelectOneRadio2DefaultItems() {
        return selectOneRadio2DefaultItems;
    }

    public void setSelectOneRadio2DefaultItems(DefaultSelectionItems dsi) {
        this.selectOneRadio2DefaultItems = dsi;
    }

    // </editor-fold>

    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public correspondencia() {
    }
    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();

        Calendar c = Calendar.getInstance();
        String dia = Integer.toString(c.get(Calendar.DATE));
        String mes = Integer.toString(c.get(Calendar.MONTH)+1);
        String annio = Integer.toString(c.get(Calendar.YEAR));
        this.setTituloFecha("Datos de procedencia -- " + dia+"/"+mes+"/"+annio);
        this.getSessionBean1().setVentanaAlert(false);
        this.getSessionBean1().setVentanaError(false);
        selectOneMenu1DefaultItems.clear();
        selectOneMenu1DefaultItems.add(new SelectItem(0, ""));
        selectOneMenu2DefaultItems.clear();
        selectOneMenu2DefaultItems.add(new SelectItem(0, ""));
        cargarAsuntos();
        cargarInstancias();
        cargarListaTurnados();
        //cargarListaOficios();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here
        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("correspondencia Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
        }
        // </editor-fold>
        // Perform application initialization that must complete
        // *after* managed components are initialized
        // TODO - add your own initialization code here

        FacesContext context = FacesContext.getCurrentInstance();
        Map<String, String> paramMap = context.getExternalContext().getRequestParameterMap();
        
        if(paramMap.get("idOficio") != null){
            //this.getSessionBean1().mostrarMensajeAlert("id", "-->"+ Integer.parseInt(paramMap.get("idOficio")) );

            this.getSessionBean1().crearSesion();
            this.getSessionBean1().sesion.load(unOficio,Integer.parseInt(paramMap.get("idOficio")));
            this.getSessionBean1().sesion.flush();
            this.setTurnadosTmp(unOficio.getTurnados());
            this.setOfiDetail(unOficio);
            this.setRemitetnteDetail(unOficio.getRem1());
            this.setCargoDetail(unOficio.getCargo1());
            this.setVentanaDetail(true);
        }
    }
    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }
    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
    }
    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }
    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }
     /******************************FUNCIONES ESPECIFICAS GLOBALES********/
    private int RegresaSeleccionadoTablaPrincipal(FacesContext contexto, ActionEvent ae) {
        int numero=-1;
        String[] temp;
        try{
            String clientId=ae.getComponent().getClientId(contexto);
            //this.setMsg("fila -->"+ clientId.toString());
            this.getSessionBean1().mostrarMensajeError("Fila ",  clientId.toString());
            temp=clientId.toString().split(":");
            //"form1:datatable2:0:comandlink1"
            numero=Integer.parseInt(temp[2]);
        }catch(Exception e){
            this.getSessionBean1().mostrarMensajeError("Error ",  e.toString());
        }
        return numero;
    }
    /******************************FUNCIONES ESPECIFICAS GLOBALES********/
    public void cargarAsuntos(){
                this.getSelectOneMenu1DefaultItems().clear();
                List <CatAsuntos> catalogo=new ArrayList<CatAsuntos>();
                try{
                    catalogo=this.getSessionBean1().getCatalogoDeAsuntos();
                    if(catalogo.size()>0){
                        Iterator iterador=catalogo.iterator();
                        if(catalogo.iterator().hasNext()){
                            CatAsuntos as;
                            while(iterador.hasNext()){
                                as=(CatAsuntos)iterador.next();
                                this.getSelectOneMenu1DefaultItems().add(new SelectItem(as.getId(),as.getAsunto()));
                            }
                        }
                    }
                }catch(Exception e){
                    this.getSessionBean1().mostrarMensajeError("Error ",  e.toString());
                }
    }
    public void cargarInstancias(){
                this.getSelectOneMenu2DefaultItems().clear();
                List <CatInstancias> catalogo=new ArrayList<CatInstancias>();
                try{
                    catalogo=this.getSessionBean1().getCatalogoDeInstancias( );
                    if(catalogo.size()>0){
                        Iterator iterador=catalogo.iterator();
                        if(catalogo.iterator().hasNext()){
                            CatInstancias in;
                            while(iterador.hasNext()){
                                in=(CatInstancias)iterador.next();
                                this.getSelectOneMenu2DefaultItems().add(new SelectItem(in.getId(),in.getDescripcion()));
                            }
                        }
                    }
                }catch(Exception e){
                    this.getSessionBean1().mostrarMensajeError("Error ",  e.toString());
                }
    }

    public String TituloFecha;
    public String getTituloFecha() {
        return TituloFecha;
    }
    public void setTituloFecha(String TituloFecha) {
        this.TituloFecha = TituloFecha;
    }
    private TimeZone timeZone;
    public TimeZone getTimeZone() {
        this.timeZone = TimeZone.getDefault();
        return timeZone;
    }
    public void setTimeZone(TimeZone timeZone) {
        this.timeZone = timeZone;
    }
    private Turnados turnado=new Turnados();
    private Remitentes remitente=new Remitentes();
//    private Oficios oficio = new Oficios();
    private List<Turnados> turnadosTmp= new ArrayList<Turnados>();
//    public Oficios getOficio() {
//        return oficio;
//    }
//    public void setOficio(Oficios oficio) {
//        this.oficio = oficio;
//    }
    public Turnados getTurnado() {
        return turnado;
    }
    public void setTurnado(Turnados turnado) {
        this.turnado = turnado;
    }
    public Remitentes getRemitente() {
        return remitente;
    }
    public void setRemitente(Remitentes remitente) {
        this.remitente = remitente;
    }
    public List<Turnados> getTurnadosTmp() {
        return turnadosTmp;
    }
    public void setTurnadosTmp(List<Turnados> turnadosTmp) {
        this.turnadosTmp = turnadosTmp;
    }
    private int editandoO=-1;
    public int getEditandoO() {
        return editandoO;
    }

    public void setEditandoO(int editandoO) {
        this.editandoO = editandoO;
    }
    public String button2_action() {
        //return null means stay on the same page
        try{
            turnadosTmp.add(new Turnados(this.getTurnado()));
            if(this.getEditandoO()>=0){
                this.turnadosTmp.remove(this.getEditandoO());
                this.setEditandoO(-1);
            }
            this.turnado.setNombre("");
            this.turnado.setPaterno("");
            this.turnado.setMaterno("");
            this.turnado.setCargo("");
            this.turnado.setOficio("");
            this.turnado.setDestino("");
            //this.turnado.setFecha(null);
        }catch (Exception e){
            this.getSessionBean1().mostrarMensajeAlert("Error","Ha ocurrido un problema para agregar la información"+ e.toString());
        }
        //JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "document.getElementById('form2:button10').focus();");
        return null;
    }
    public void commandLink1_processAction(ActionEvent ae) {
        FacesContext contexto = FacesContext .getCurrentInstance();
        int numero=RegresaSeleccionadoTablaPrincipal(contexto,  ae);
        this.turnadosTmp.remove(numero);
    }
    public void commandLink2_processAction(ActionEvent ae) {
        FacesContext contexto = FacesContext .getCurrentInstance();
        int numero=RegresaSeleccionadoTablaPrincipal(contexto,  ae);
        this.setTurnado(this.turnadosTmp.get(numero));
        this.setEditandoO(numero);
    }
    private Oficios unOficio= new Oficios();
    private int asuntoInt=0;
    private int instanciaInt=0;
    public int getAsuntoInt() {
        return asuntoInt;
    }
    public void setAsuntoInt(int asuntoInt) {
        this.asuntoInt = asuntoInt;
    }
    public int getInstanciaInt() {
        return instanciaInt;
    }
    public void setInstanciaInt(int instanciaInt) {
        this.instanciaInt = instanciaInt;
    }
    public Oficios getUnOficio() {
        return unOficio;
    }
    public void setUnOficio(Oficios unOficio) {
        this.unOficio = unOficio;
    }


    private Oficios ofiDetail= new Oficios();
    public Oficios getOfiDetail() {
        return ofiDetail;
    }
    public void setOfiDetail(Oficios ofiDetail) {
        this.ofiDetail = ofiDetail;
    }

    public String button5_action() {
        //boolean pasa=true;
        if(this.getRemitente().getNombre().equalsIgnoreCase("") || this.getRemitente().getCargo().equalsIgnoreCase("")){
            this.getSessionBean1().mostrarMensajeAlert("Atención","Datos de procedencia son necesarios");
            //pasa=false;
            return null;
        }
        boolean turnar=true;
        try{
            if(this.getSelectOneRadio2Bean().getSelectedObject().toString().equalsIgnoreCase("1")){
                turnar=true;
            }else{
                turnar=false;
            }
        }catch(Exception e){
          // this.getSessionBean1().mostrarMensajeAlert("Atención","Seleccione la prioridad");
             turnar=true;
        }
        if(this.turnadosTmp.size() == 0 && turnar){
            this.getSessionBean1().mostrarMensajeAlert("Atención","Si no sera turnado debe indicarse");
            return null;
        }
//      if(this.getUnOficio().getFechaRec()==null ){
//          this.getSessionBean1().mostrarMensajeAlert("Atención", "La fecha de recepción es necesaria");
//          //pasa=false;
//          return null;
//      }
        try{
            if(this.getSelectOneRadio1Bean().getSelectedObject().toString().equalsIgnoreCase("1")){
                this.getUnOficio().setProridad("C.Normal");
            }
            if(this.getSelectOneRadio1Bean().getSelectedObject().toString().equalsIgnoreCase("2")){
                this.getUnOficio().setProridad("B.Urgente");
            }
            if(this.getSelectOneRadio1Bean().getSelectedObject().toString().equalsIgnoreCase("3")){
                this.getUnOficio().setProridad("A.Extra Urgente");
            }
        }catch(Exception e){
          // this.getSessionBean1().mostrarMensajeAlert("Atención","Seleccione la prioridad");
             this.getUnOficio().setProridad("C.Normal");
        }

        try{
            int response=getSessionBean1().addOficio(this.getUnOficio(),this.getAsuntoInt(),this.getInstanciaInt());
            if(response==-1){
                this.getSessionBean1().mostrarMensajeAlert("Atención","Complete la información");
            }else{
                this.getUnOficio().setId(response);
                this.getRemitente().setOficios(this.getUnOficio());
                Remitentes r = this.getSessionBean1().addRemitente(this.getRemitente());
                for (int i = 0; i < turnadosTmp.size() ; i++) {
                    this.setTurnado(this.turnadosTmp.get(i));
                    this.getTurnado().setOficios(this.getUnOficio());
                    Turnados t = this.getSessionBean1().addTurnado(this.getTurnado());
                }
                this.getSessionBean1().mostrarMensajeAlert("Exito","Registro almacenado con exito");
                turnadosTmp.clear();
                this.getTurnado().setId(0);
                this.getTurnado().setOficios(null);
                this.getTurnado().setNombre("");
                this.getTurnado().setPaterno("");
                this.getTurnado().setMaterno("");
                this.getTurnado().setOficio("");
                this.getTurnado().setCargo("");
                this.getTurnado().setDestino("");
                this.getTurnado().setFecha(null);
                this.getUnOficio().setFechaCap(null);
                this.getUnOficio().setFechaRec(null);
                this.getUnOficio().setDescripcion("");
                this.getUnOficio().setObservaciones("");
                this.getUnOficio().setOficio("");
                this.getRemitente().setNombre("");
                this.getRemitente().setCargo("");
                this.setVentanaNuevo(false);
                cargarListaTurnados();

            }
        }catch(Exception e){
            this.getSessionBean1().mostrarMensajeError("Error","Ha ocurrido un problema al intentar guardar la información");
        }
        JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "document.getElementById('form2:button10').focus();");
        return null;
    }
    private List<Oficios> listaOficios= new ArrayList<Oficios>();
    private List<Turnados> listaTurnados = new ArrayList<Turnados>();
    public List<Oficios> getListaOficios() {
        return listaOficios;
    }
    public void setListaOficios(List<Oficios> listaOficios) {
        this.listaOficios = listaOficios;
    }
    public void cargarListaOficios(){
        this.setListaOficios(this.getSessionBean1().llenaOficiosEntrada());
    }
    public List<Turnados> getListaTurnados() {
        return listaTurnados;
    }
    public void setListaTurnados(List<Turnados> listaTurnados) {
        this.listaTurnados = listaTurnados;
    }
    private parametros parametrosFiltro= new parametros();
    public parametros getParametrosFiltro() {
        return parametrosFiltro;
    }
    public void setParametrosFiltro(parametros prametrosFiltro) {
        this.parametrosFiltro = prametrosFiltro;
    }

    boolean bandera;
    public String button1_action() {
         bandera=true;
        if(bandera){
        try{

            if(this.getSessionBean1().llenarListaTurnadosFiltro(this.getParamSeacrh(), this.getSelectOneRadio1Bean().getSelectedObject().toString(),this.getParametrosFiltro()).isEmpty()){
                this.getSessionBean1().mostrarMensajeAlert("Error","No existe elemento buscado.");
            }else{
                this.setListaPrinTurnadosFiltro(this.getSessionBean1().llenarListaTurnadosFiltro(this.getParamSeacrh(), this.getSelectOneRadio1Bean().getSelectedObject().toString(),this.getParametrosFiltro()));
            }
        }catch(NullPointerException npe){
        this.getSessionBean1().mostrarMensajeAlert("Error","Seleccionar tipo de búsqueda.");
        }
        }
        return null;
    }

//public String button12_action() {
//    bandera=false;
//    if(this.getSessionBean1().llenarListaTurnadosFiltro(this.getParametrosFiltro()).isEmpty()){
//
//        this.getSessionBean1().mostrarMensajeAlert("Error","Campo fecha está vacío.");
//
//    }else
//    this.setListaPrinTurnadosFiltro(this.getSessionBean1().llenarListaTurnadosFiltro(this.getParametrosFiltro()));
//
//
//        return null;
//
//    }


    public void cargarListaTurnados(){
        this.setListaTurnados(this.getSessionBean1().llenaOficiosTurnados());
    }
    public String button3_action() {
        //cargarListaOficios();
        cargarListaTurnados();
        return null;
    }
    private boolean ventanaNuevo= false;
    private boolean ventanaEdit= false;
    private boolean ventanaDetail= false;
    public boolean isVentanaNuevo() {
        return ventanaNuevo;
    }
    public void setVentanaNuevo(boolean ventanaNuevo) {
        this.ventanaNuevo = ventanaNuevo;
    }

    public boolean isVentanaEdit() {
        return ventanaEdit;
    }

    public void setVentanaEdit(boolean ventanaEdit) {
        this.ventanaEdit = ventanaEdit;
    }
    
    public boolean isVentanaDetail() {
        return ventanaDetail;
    }
    public void setVentanaDetail(boolean ventanaDetail) {
        this.ventanaDetail = ventanaDetail;
    }
    public String button6_action() {
        this.turnadosTmp.clear();
        this.unOficio.setOficio("");
        this.unOficio.setDescripcion("");
        this.unOficio.setObservaciones("");
        this.getRemitente().setNombre("");
        this.getRemitente().setCargo("");
        this.setVentanaNuevo(true);
        Date now = new Date();
        unOficio.setFechaRec(now);
        turnado.setFecha(now);
        return null;
    }

    public String button_9_action() {
        this.setVentanaNuevo(false);
        return null;
    }

    public String btnclose1_action() {
        this.getSessionBean1().setVentanaAlert(false);
        return null;
    }
    public String button10_action() {
        this.getSessionBean1().setVentanaAlert(false);
        return null;
    }
    public String button7_action() {
        //return null means stay on the same page
        this.setVentanaNuevo(false);
        return null;
    }
    
    public String inputText3_action() {
        button1_action();
        return null;
    }
    public String inputText4_action() {
        button1_action();
        return null;
    }

    public String inputText11_action() {
         button1_action();
        return null;
    }
    public void selectInputDate2_processValueChange(ValueChangeEvent vce) {
        //vce.getNewValue();
        this.getParametrosFiltro().setFecha( (Date) vce.getNewValue());
        button1_action();
    }
    private Turnados turnaDetail= new Turnados();
    public Turnados getTurnaDetail() {
        return turnaDetail;
    }
    public void setTurnaDetail(Turnados turnaDetail) {
        this.turnaDetail = turnaDetail;
    }
   
    private String remitetnteDetail;
    private String cargoDetail;

    public String getCargoDetail() {
        return cargoDetail;
    }
    public void setCargoDetail(String cargoDetail) {
        this.cargoDetail = cargoDetail;
    }
    public String getRemitetnteDetail() {
        return remitetnteDetail;
    }
    public void setRemitetnteDetail(String remitetnteDetail) {
        this.remitetnteDetail = remitetnteDetail;
    }
    public void commandLink4_processAction(ActionEvent ae) {


        //this.getSessionBean1().mostrarMensajeAlert("Atención","entre al detalle");

        FacesContext contexto = FacesContext .getCurrentInstance();
       int numero=RegresaSeleccionadoTablaPrincipal(contexto,  ae);

        this.getSessionBean1().crearSesion();
       this.getSessionBean1().sesion.clear();
        this.getSessionBean1().sesion.load(ofiDetail, this.listaPrinTurnadosFiltro.get(numero).getOficios().getId());
        
        this.turnadosTmp.clear();
       this.setRemitetnteDetail(this.ofiDetail.getRem1());
        this.setCargoDetail(this.ofiDetail.getCargo1());
        try {

            Set turn;
            turn= ofiDetail.getTurnadoses();
            for (Iterator iterator =  turn.iterator(); iterator.hasNext();){
                Turnados quej = (Turnados) iterator.next();
                if(!quej.getDeleted()){
                    this.turnadosTmp.add(quej);
                }
            }
        }catch (Exception e){
            this.getSessionBean1().mostrarMensajeError("Error", e.getMessage().toString());
        }
//        //this.getSessionBean1().mostrarMensajeAlert("Numero"," :"+ this.listaTurnados.get(numero).getOficios().getOficio());
//        this.setTurnadosTmp(this.listaTurnados.get(numero).getOficios().getTurnados());
//        this.setOfiDetail(this.listaTurnados.get(numero).getOficios());
//        this.setRemitetnteDetail(this.listaTurnados.get(numero).getOficios().getRem1());
//        this.setCargoDetail(this.listaTurnados.get(numero).getOficios().getCargo1());
        this.setVentanaDetail(true);
    }
    public void commandLink5_processAction(ActionEvent ae) {
        FacesContext contexto = FacesContext .getCurrentInstance();
        int numero=RegresaSeleccionadoTablaPrincipal(contexto,  ae);        //this.getSessionBean1().mostrarMensajeAlert("eliminar","->" + this.turnadosTmp.get(numero).getId());
        boolean re=this.getSessionBean1().deleteTurnadosId(this.turnadosTmp.get(numero).getId());
        this.turnadosTmp.remove(numero);
    }
    public String button_1_action() {
        //return null means stay on the same page
        this.setVentanaDetail(false);
        this.getTurnadosTmp().clear();
        return null;
    }
    public void button4_processAction(ActionEvent ae) {
        this.getSessionBean1().cerrarSesion();
        FacesContext context = FacesContext.getCurrentInstance();
        JavascriptContext.addJavascriptCall(context, "setTimeout(\"window.location.href='Page1.jsp'\",1000);");
        //return null;
    }
    public void valueChange(ValueChangeEvent vce) {
       int val=0;
        try{
            val= Integer.parseInt(vce.getNewValue().toString());
        }catch(Exception ex){
            val=0;
        }//this.getOficioExterno().setFecha_prioridad(null);
        if( val== 1){
             //this.getSessionBean1().mostrarMensajeAlert("1","uno");
        }else{
             this.getTurnadosTmp().clear();
        }
    }
    public String button_2_action() {
        //return null means stay on the same page
        this.setVentanaEdit(false);
        return null;
    }
    public String button9_action() {
        if(this.getRemitente().getNombre().equalsIgnoreCase("") || this.getRemitente().getCargo().equalsIgnoreCase("")){
            this.getSessionBean1().mostrarMensajeAlert("Atención","Datos de procedencia son necesarios");
            return null;
        }
        boolean turnar=true;
        try{
            if(this.getSelectOneRadio2Bean().getSelectedObject().toString().equalsIgnoreCase("1")){
                turnar=true;
            }else{
                turnar=false;
            }
        }catch(Exception e){
             turnar=true;
        }
        if(this.turnadosTmp.size() == 0 && turnar){
            this.getSessionBean1().mostrarMensajeAlert("Atención","Si no sera turnado debe indicarse");
            return null;
        }
        try{
            if(this.getSelectOneRadio1Bean().getSelectedObject().toString().equalsIgnoreCase("1")){
                this.getUnOficio().setProridad("C.Normal");
            }
            if(this.getSelectOneRadio1Bean().getSelectedObject().toString().equalsIgnoreCase("2")){
                this.getUnOficio().setProridad("B.Urgente");
            }
            if(this.getSelectOneRadio1Bean().getSelectedObject().toString().equalsIgnoreCase("3")){
                this.getUnOficio().setProridad("A.Extra Urgente");
            }
        }catch(Exception e){
             this.getUnOficio().setProridad("C.Normal");
        }
        try{
            int response=getSessionBean1().addOficioEdit(this.getUnOficio(),this.getAsuntoInt(),this.getInstanciaInt());
            if(response==-1){
                this.getSessionBean1().mostrarMensajeAlert("Atención","Complete la información");
            }else{
                this.getUnOficio().setId(response);
                this.getRemitente().setOficios(this.getUnOficio());
                //boolean re=this.getSessionBean1().deleteTurnados(response);
                Remitentes r = this.getSessionBean1().addRemitenteEdit(this.getRemitente());
                for (int i = 0; i < turnadosTmp.size() ; i++) {
                    this.setTurnado(this.turnadosTmp.get(i));
                    this.getTurnado().setOficios(this.getUnOficio());
                    Turnados t = this.getSessionBean1().addTurnadoEdit(this.getTurnado());
                }
                this.getSessionBean1().mostrarMensajeAlert("Exito","Registro almacenado con exito");
                turnadosTmp.clear();
                this.getTurnado().setId(0);
                this.getTurnado().setOficios(null);
                this.getTurnado().setNombre("");
                this.getTurnado().setPaterno("");
                this.getTurnado().setMaterno("");
                this.getTurnado().setOficio("");
                this.getTurnado().setCargo("");
                this.getTurnado().setDestino("");
                this.getTurnado().setFecha(null);
                this.getUnOficio().setFechaCap(null);
                this.getUnOficio().setFechaRec(null);
                this.getUnOficio().setDescripcion("");
                this.getUnOficio().setObservaciones("");
                this.getUnOficio().setOficio("");
                this.getRemitente().setNombre("");
                this.getRemitente().setCargo("");
                this.setVentanaEdit(false);
                cargarListaTurnados();
            }
        }catch(Exception e){
            this.getSessionBean1().mostrarMensajeError("Error","Ha ocurrido un problema al intentar guardar la información");
        }
        JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "document.getElementById('form2:button10').focus();");
        return null;
    }
    public String button11_action() {
        //return null means stay on the same page
        this.setVentanaEdit(false);

        return null;
    }

    public void commandLink3_processAction(ActionEvent ae) {
         FacesContext contexto = FacesContext .getCurrentInstance();
       int numero=RegresaSeleccionadoTablaPrincipal(contexto,  ae);

        this.getSessionBean1().crearSesion();
       this.getSessionBean1().sesion.clear();
        this.getSessionBean1().sesion.load(unOficio, this.listaPrinTurnadosFiltro.get(numero).getOficios().getId());

        this.turnadosTmp.clear();
       this.setRemitetnteDetail(this.unOficio.getRem1());
        this.setCargoDetail(this.unOficio.getCargo1());
        try {

            Set turn;
            turn= unOficio.getTurnadoses();
            for (Iterator iterator =  turn.iterator(); iterator.hasNext();){
                Turnados quej = (Turnados) iterator.next();
                if(!quej.getDeleted()){
                    this.turnadosTmp.add(quej);
                }
            }
        }catch (Exception e){
            this.getSessionBean1().mostrarMensajeError("Error", e.getMessage().toString());
        }
        try{
            this.getRemitente().setId(this.unOficio.getId1());
            this.getRemitente().setNombre(this.unOficio.getRem1());
            this.getRemitente().setCargo(this.unOficio.getCargo1());
        }catch (Exception e){
            this.getSessionBean1().mostrarMensajeAlert("Error",e.getMessage().toString() + " - " + e.getCause().toString());
        }
        
        //this.setRemitente(this.unOficio.getRemitente());


//        this.setTurnadosTmp(this.listaTurnados.get(numero).getOficios().getTurnados());
//       this.setUnOficio(this.listaTurnados.get(numero).getOficios());
//        try{
//            this.getRemitente().setId(this.listaTurnados.get(numero).getOficios().getId1());
//            this.getRemitente().setNombre(this.listaTurnados.get(numero).getOficios().getRem1());
//            this.getRemitente().setCargo(this.listaTurnados.get(numero).getOficios().getCargo1());
//        }catch (Exception e){
//            this.getSessionBean1().mostrarMensajeAlert("Error",e.getMessage().toString() + " - " + e.getCause().toString());
//        }
//       this.setAsuntoInt(this.listaTurnados.get(numero).getOficios().getCatAsuntos().getId());
//        this.setInstanciaInt(this.listaTurnados.get(numero).getOficios().getCatInstancias().getId());
        this.setVentanaEdit(true);
//        this.getSessionBean1().mostrarMensajeAlert("MSG",this.listaTurnados.get(numero).getOficios().getRem1());
//        this.setRemitente(this.listaTurnados.get(numero).getOficios().getRemitente());
//        this.setOfiDetail(this.listaTurnados.get(numero).getOficios());
//        this.setRemitetnteDetail(this.listaTurnados.get(numero).getOficios().getRem1());
//        this.setCargoDetail(this.listaTurnados.get(numero).getOficios().getCargo1());
//        this.setVentanaDetail(true);
    }



    public String button8_action() {
        //return null means stay on the same page
        try{
            turnadosTmp.add(new Turnados(this.getTurnado()));
            if(this.getEditandoO()>=0){
                this.turnadosTmp.remove(this.getEditandoO());
                this.setEditandoO(-1);
            }
            this.turnado.setNombre("");
            this.turnado.setPaterno("");
            this.turnado.setMaterno("");
            this.turnado.setCargo("");
            this.turnado.setOficio("");
            this.turnado.setDestino("");
            //this.turnado.setFecha(null);
        }catch (Exception e){
            this.getSessionBean1().mostrarMensajeAlert("Error","Ha ocurrido un problema para agregar la información"+ e.toString());
        }
        //JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "document.getElementById('form2:button10').focus();");
        return null;
    }
    public void commandLink6_processAction(ActionEvent ae) {
        FacesContext contexto = FacesContext .getCurrentInstance();
        int numero=RegresaSeleccionadoTablaPrincipal(contexto,  ae);
        this.setTurnado(this.turnadosTmp.get(numero));
        this.setEditandoO(numero);
        this.turnadosTmp.get(numero).setDeleted(true);
    }
    public String button_3_action(){
        String url="";
        url+="reporteOficio?idOficio="+this.getOfiDetail().getId();
        JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "openWindow('" + url + "','Reporte 1', '_');");
        return null;
    }
    public void button_4_processAction(ActionEvent ae){
        String url="";
        url+="investigacion.jsp?idOficio="+this.getOfiDetail().getId()+"&of="+this.getOfiDetail().getOficio();
        JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "window.document.location.href='"+url+"';");
    }
    public void button_5_processAction(ActionEvent ae){
        String url="";
        //if(this.getOfiDetail().geti)
        url+="procedimiento.jsp?idOficio="+this.getOfiDetail().getId()+"&of="+this.getOfiDetail().getOficio();
        JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "window.document.location.href='"+url+"';");
    }

    public String paramSeacrh;
    public String getParamSeacrh() {
        return paramSeacrh;
    }
    public void setParamSeacrh(String paramSeacrh) {
        this.paramSeacrh = paramSeacrh;
    }


    private List<Turnados> listaPrinTurnados = new ArrayList<Turnados>();
    private List<listaTurnados> listaPrinTurnadosFiltro= new ArrayList<listaTurnados>();

    public List<Turnados> getListaPrinTurnados() {
        return listaPrinTurnados;
    }

    public void setListaPrinTurnados(List<Turnados> listaPrinTurnados) {
        this.listaPrinTurnados = listaPrinTurnados;
    }

    public List<listaTurnados> getListaPrinTurnadosFiltro() {
        return listaPrinTurnadosFiltro;
    }

    public void setListaPrinTurnadosFiltro(List<listaTurnados> listaPrinTurnadosFiltro) {
        this.listaPrinTurnadosFiltro = listaPrinTurnadosFiltro;
    }

     private void cargarListaTurnadosFiltro() {
        //int a=2;
        this.setListaPrinTurnadosFiltro(this.getSessionBean1().llenarListaTurnadosFiltro(this.getParamSeacrh() , this.getSelectOneRadio1Bean().getSelectedObject().toString(),this.getParametrosFiltro()));
    }


}

